package pe.gob.sunat.georeferencia.consulta.web.controller;

import java.util.HashMap;
import java.util.Map;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.xml.rpc.ServiceException;

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.log4j.NDC;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.mvc.multiaction.MultiActionController;

import pe.gob.sunat.framework.spring.web.view.JsonView;
import pe.gob.sunat.georeferencia.consulta.service.ViasService;

/**
 * <p>
 * Title: ConsultaController
 * </p>
 * <p>
 * Description: .
 * </p>
 * 
 * @author
 */
public class GeoreferenciacionController extends MultiActionController {
	private static final Log log = LogFactory
			.getLog(GeoreferenciacionController.class);

	private ViasService viasService;
	private JsonView jsonView;

	/**
	 * Muestra la pantalla inicial.
	 * 
	 * @param request
	 * @param response
	 * @return
	 */
	public ModelAndView mostrarForm(HttpServletRequest request,
			HttpServletResponse response) {
		ModelAndView modelAndView = null;
		try {
			// UsuarioBean usuarioBean = (UsuarioBean) WebUtils
			// .getSessionAttribute(request, "usuarioBean");
			// if (log.isInfoEnabled())
			// log.info(">> mostrarForm :: Ingresando a la vista"
			// + usuarioBean.getNombreCompleto() + "-"
			// + usuarioBean.getNombres() + "-"
			// + usuarioBean.getLogin());

			modelAndView = new ModelAndView("Georeferenciacion");

		} catch (Exception ex) {
			log.error(ex, ex);
			// MensajeBean msb = new MensajeBean();
			// modelAndView = new ModelAndView("PagE");
			// msb.setError(true);
			// msb.setMensajeerror("Error al ingresar al formulario.");
			// modelAndView.addObject("beanErr", msb);
		} finally {
			NDC.pop();
			NDC.remove();
		}
		return modelAndView;
	}

	public ViasService getViasService() {
		return viasService;
	}

	public void setViasService(ViasService viasService) {
		this.viasService = viasService;
	}

	public JsonView getJsonView() {
		return jsonView;
	}

	public void setJsonView(JsonView jsonView) {
		this.jsonView = jsonView;
	}

	public ModelAndView buscaRegistros(HttpServletRequest request,
			HttpServletResponse response) throws ServiceException {
		ModelAndView modelAndView = null;
		Map<String, Object> result = new HashMap<String, Object>();
		try {
			String nrosol = request.getParameter("nrosol");
			String ruc = request.getParameter("ruc");
			String etapa = request.getParameter("etapa");
			String fecini = request.getParameter("fecini");
			String fecfin = request.getParameter("fecfin");

			// UsuarioBean usuarioBean = (UsuarioBean) WebUtils
			// .getSessionAttribute(request, "usuarioBean");
			result = viasService.buscarVias(nrosol);
			modelAndView = new ModelAndView(jsonView, "datamodel", result);
		} catch (Exception ex) {
			log.error(this, ex);
			result.put("error", "Hubo un error al cargar las solicitudes.");
			modelAndView = new ModelAndView(jsonView, "datamodel", result);
		}
		return modelAndView;
	}

}
